package FirstStage.ObjectDetil;

public class finalize {
    // 当某个对象没有任何引用时，则jvm认为这个对象是一个垃圾对象，就会使用垃圾回收机制来销毁该对象
    // 当对象被回收时，系统自动调用该对象的finalize方法。子类可以重写该方法，做一些释放资源的操作
    public static void main(String[] args) {
        Car bwm = new Car("宝马");
        bwm = null; // 此时，bwn对象就是一个垃圾，垃圾回收器就会回收（销毁）对象,在销毁前，会调用该对象的finalize方法
        // 程序员可以在finalize方法中，写自己的业务逻辑代码。如果不重写，就会调用Object类的finalize方法
        System.gc();
    }
}

class Car{
    private String name;

    public Car(String name) {
        this.name = name;
    }
    @Override
    protected void finalize() throws  Throwable{
        System.out.println("销毁了汽车");
    }
}